﻿using System;
using BinarySerialization;

namespace EditMode
{
    public enum Expression : uint
    {
        通常 = 0x15,
        強い意志 = 0x0A,
        苦痛 = 0x25,
        苦悶 = 0x24,
        やる気 = 0x14,
        感嘆 = 0x05,
        キリッ = 0x0F,
        元気 = 0x13,
        おすまし = 0x0B,
        優しい表情 = 0x0C,
        落ち着いた表情 = 0x07,
        まぶしい表情 = 0x08,
        何かを想う = 0x11,
        悩む = 0x27,  
        切ない = 0x12,
        うつろ = 0x10,
        冷静 = 0x22,
        悲しみ = 0x00,
        微笑み = 0x06,
        笑顔 = 0x01,
        強気な笑顔 = 0x29,
        困った笑顔 = 0x23,
        泣き顔 = 0x26,
        驚き = 0x03,
        真面目な驚き = 0x28,
        流し目 = 0x0D,
        セクシーな感じ = 0x09,
        ウィンク_右 = 0x2B,
        ウィンク_左 = 0x2A,
        元気なウィンク_右 = 0x2D,
        元気なウィンク_左 = 0x2C,
        泣き = 0x02,
        泣き_ガーン = 0x2E,
        白目 = 0x2F,
        白目_ガーン = 0x30,
        線目 = 0x31,
        線目_ガーン = 0x32,
        片眉上げ_右 = 0x33,
        片眉上げ_右_目閉じ = 0x34,
        片眉上げ_左 = 0x35,
        片眉上げ_左_目閉じ = 0x36,
        困り笑顔 = 0x37,
        困惑 = 0x38,
        困惑_目閉じ = 0x39,
        目がぐるぐる = 0x3A,
    }                         

    /// <summary>
    /// Change edit player facial expression instruction.
    /// </summary> 
    [Serializable]
    public class PlayerExpression
    {
        [FieldOrder(0)]
        public uint Time { get; set; }

        [FieldOrder(1)]
        public byte Unknown1 { get; set; }

        [FieldOrder(2)]
        public byte Unknown2 { get; set; }

        [FieldOrder(3)]
        public byte Unknown3 { get; set; }

        [FieldOrder(4)]
        public byte Unknown4 { get; set; }

        [FieldOrder(5)]
        public Expression ExpressionID { get; set; }

        [FieldOrder(6)]
        public uint Interpolation { get; set; }
    }
}